<?php
	//表单验证,禁止分号和非规则内的字段,如果异常就存入异常信息,并返回警告
	//如果某句不符合就返回警告信息并exit退出
	header('Content-Type:text/plain;charset=utf-8');//防止html乱码
	//date_default_timezone_set ('Etc/GMT-8');//设定时区
	$IO = $_POST['IO'];//进出烤标识
	$GongHao = $_POST['GongHao'];//工号
	$KaoXiangHao = $_POST['KaoXiangHao'];//烤箱号
	$KXMen = $_POST['KXMen'];//烤箱门
	$GD =  $_POST['GD'];//工单的JSON包
	//$Time = date("Y-m-d H:i:s",time());//当前时间2018-05-30 20:09:46
	$sqlvalue="";//凑保存的值
	$SQL1 = "";//语句1,查行号
	$SQL2 = "";//语句2,
	$SQL3 = "";//语句3
	$GDarr = json_decode($GD,true);//true解析成Array数组,而不是对象
	//数据库PDO连接MySQL
	//127.0.0.1
	//172.31.3.21
	$pdo =new pdo("mysql:host=172.31.3.21;port=3306;dbname=tddb;","root","tdled2018");
	$pdo->query("set character set 'utf8'");//读库
	$pdo->query("set names 'utf8'");//写库

	//减去20分钟
	//PHP 日期 加减 分
	//$KongZhiTime = date("Y-m-d h:i:s",strtotime($Time . "+20 minute"));

	$JinKaoTime = 0;

	if($KaoXiangHao && $KXMen)
	{
	}
	else
	{
		$ZT = "请确认烤箱号和烤箱门是否有扫入,否则请刷新程序后,重新开始流程!";
		echo json_encode(array('ZT'=>$ZT));
		return;
	}

	$SQL1 = "
	SELECT
		*
		,TIMESTAMPDIFF(MINUTE,InTime,NOW()) AS T
	FROM
		kaoxiang_h
	WHERE
		KaoXiangHao = '".$KaoXiangHao."'
	AND
		KXMen = '".$KXMen."'
	AND
		OutGongHao = ''"
	;
	$res=$pdo->query($SQL1);//准备查询语句
	$i = $res->rowCount();//取出烤箱号和烤箱门中的行数

	while ($row = $res -> fetch())
	{
		$JinKaoTime = $row["T"];
	}

	if($IO==="INTO")//如果要进烤,且未出烤,行数小于1
	{
		if(count($GDarr)>0 && $i < 1)//如果工单数组的数据大于0
		{
			//第一次扫描进来的时候就写数据库
			$SQL2 = "
			INSERT INTO
				kaoxiang_h
			(
				 KaoXiangHao
				,KXMen
				,InGongHao
				,InTime
			)
			VALUES
			(
				 '" . $KaoXiangHao . "'
				,'" . $KXMen . "'
				,'" . $GongHao . "'
				,NOW()
			)"
			;

			$res=$pdo->prepare($SQL2);//准备查询语句
			$res->execute(); //执行一条查询语句
			$HID = $pdo->lastInsertId();//取出进烤后的自增值

			$SQL3 = "
			INSERT INTO
				kaoxiang_d
			(
				 KXHID
				,GongDanHao
				,PCS
			)
			VALUES
			";
			foreach($GDarr as $x=>$x_value){
				if($sqlvalue===""){
					$sqlvalue = " ('".$HID."','".$x."','".$x_value."')";
				}else{
					$sqlvalue .= ",('".$HID."','".$x."','".$x_value."')";
				}
			}
			$SQL3 .= $sqlvalue;
			$ZT = "进烤成功";
		}
		else
		{
			$ZT = "进烤数据为空或烤箱内还有工单未出烤!";
		}
	}
	else if($IO==="OUT" && $i > 0)//第二次扫描进来的时候就更新数据库字段
	{
		if($JinKaoTime <= 20)
		{
			$ZT = "时间没到,不能出烤!";
			echo json_encode(array('ZT'=>$ZT));
			return;
		}

		$SQL3 = "
			UPDATE
				kaoxiang_h
			SET
				 OutGongHao = '" . $GongHao . "'
				,OutTime = NOW()
			WHERE
				KaoXiangHao = '" . $KaoXiangHao . "'
			AND
				KXMen = '" . $KXMen . "'
			AND
				OutGongHao = ''"
		;
		$ZT = "出烤成功";
	}
	else
	{
		$ZT = "请按照标准流程作业!或刷新程序后重试!";
		echo json_encode(array('ZT'=>$ZT));
		return;
	}

	$res=$pdo->prepare($SQL3);//准备查询语句
	$res->execute(); //执行一条查询语句
	$pdo = null;
	echo json_encode(array('ZT'=>$ZT,'SQL1'=>$SQL1,'SQL2'=>$SQL2,'SQL3'=>$SQL3));//转码成json
/*
kaoxiang_h
表注释: 烤箱

字段	类型	空	默认	注释
KXHID	int(11)	否 	 	烤箱自增ID 
KaoXiangHao	varchar(30)	否 	 	烤箱号 
KXMen	varchar(20)	否 	 	烤箱门 
InGongHao	varchar(20)	否 	 	进烤人 
InTime	datetime	否 	 	进烤时间 
OutGongHao	varchar(20)	否 	 	出烤人 
OutTime	datetime	否 	 	出烤时间 
JiHeGongHao	varchar(20)	否 	 	稽核人 
JiHeTime	datetime	否 	 	稽核时间 
YC	varchar(255)	否 	 	异常说明 


kaoxiang_d
表注释: 烤箱表身

字段	类型	空	默认	注释
KXHID	int(11)	否 	 	烤箱自增ID 
KXDID	int(11)	否 	 	表身ID 
GongDanHao	varchar(30)	否 	 	工单号 
QTY	decimal(11,3)	否 	 	数量(K) 
*/
?>